package com.neuedu.yyzx.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;

import com.neuedu.yyzx.po.Food;
import com.neuedu.yyzx.service.FoodService;
import com.neuedu.yyzx.mapper.FoodMapper;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @author HordEmpty
 * @description 针对表【food】的数据库操作Service实现
 * @createDate 2025-04-09 10:13:49
 */
@Service
public class FoodServiceImpl extends ServiceImpl<FoodMapper, Food> implements FoodService {

    @Override
    public List<Food> listFoods(Integer isHalal, String foodName) {
        // 创建查询条件
        LambdaQueryWrapper<Food> queryWrapper = new LambdaQueryWrapper<>();

        // 如果 isHalal 不为 null 且不为 -1，则添加筛选条件
        if (isHalal != null && isHalal != -1) {
            queryWrapper.eq(Food::getIsHalal, isHalal);
        } else if (isHalal == null) {
            // 如果 isHalal 为 null，不添加筛选条件
            // 可以选择记录日志或执行其他逻辑（根据需求）
        }

        // 如果 foodName 不为空，则添加模糊查询条件
        if (foodName != null && !foodName.trim().isEmpty()) {
            queryWrapper.like(Food::getFoodName, foodName.trim());
        }

        // 执行查询
        return this.list(queryWrapper);
    }

    @Override
    public Page<Food> listFoods(Page page , Integer isHalal, String foodName) {
        // 创建查询条件
        LambdaQueryWrapper<Food> queryWrapper = new LambdaQueryWrapper<>();

        // 如果 isHalal 不为 null 且不为 -1，则添加筛选条件
        if (isHalal != null && isHalal != -1) {
            queryWrapper.eq(Food::getIsHalal, isHalal);
        }

        // 如果 foodName 不为空，则添加模糊查询条件
        if (foodName != null && !foodName.trim().isEmpty()) {
            queryWrapper.like(Food::getFoodName, foodName.trim());
        }

        // 创建分页对象
//        com.baomidou.mybatisplus.extension.plugins.pagination.Page<Food> page = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(pageNum, pageSize);

        // 执行分页查询
        this.page(page, queryWrapper);

        // 返回分页结果中的记录列表
        return page;
    }
}
